package com.zmn.oms.third.tc58.service;

import com.zmn.oms.common.exception.OmsBaseException;
import com.zmn.oms.model.bo.order.OrderBO;
import com.zmn.oms.model.entity.work.OrderWorkLogChange;
import com.zmn.oms.third.base.dto.api.ApiInvokResult;
import com.zmn.oms.third.tc58.dto.api.Tc58Order;
import com.zmn.oms.third.tc58.dto.api.Tc58OrderStatus;
import com.zmn.oms.third.tc58.dto.api.Tc58SecondPayInfo;
import com.zmn.oms.third.tc58.dto.api.Tc58ServiceTime;

/**
 * 类描述：
 *
 * @author LiangHailong
 * @date 2019/09/24 16:17
 */
public interface Tc58Service {

    /**
     * 保存订单
     * @param tc58Order
     */
    OrderBO saveOrder(Tc58Order tc58Order) throws Exception;

    /**
     * 修改订单状态
     * @param tc58OrderStatus
     */
    void changeOrderStatus(Tc58OrderStatus tc58OrderStatus) throws Exception;

    /**
     * 保存二次支付信息
     * @param tc58SecondPayInfo
     */
    void saveSecondPayInfo(Tc58SecondPayInfo tc58SecondPayInfo) throws Exception;

    /**
     * 修改预约时间
     * @param tc58ServiceTime
     */
    void changeServiceTime(Tc58ServiceTime tc58ServiceTime) throws Exception;

    /**
     * 激活精选渠道订单（获取用户联系电话，并将订单置为可操作状态）
     */
    void activeJingxuanOrder(OrderWorkLogChange orderWorkLogChange);

    /**
     * 查询58订单详情
     * @param orderId
     * @return
     * @throws OmsBaseException
     */
    String activeJingxuanOrder(Long orderId) throws OmsBaseException;

    /**
     * 获取58精选支付url
     * @param orderId
     * @param outerId
     * @param orderMoney
     * @return
     * @throws OmsBaseException
     */
    ApiInvokResult findJingxuanPayUrl(Long orderId, String outerId, Double orderMoney) throws OmsBaseException;

}
